//
// CallbackInterface.hpp for CallbackInterface in /home/mambou_j//babel-2014
// 
// Made by jacquesquentin mamboumouafo
// Login   <mambou_j@epitech.net>
// 
// Started on  Fri May 11 00:52:39 2012 jacquesquentin mamboumouafo
// Last update Tue May 15 00:14:46 2012 jacquesquentin mamboumouafo
//


namespace	portaudio
{

  /////
  /// @brief Interface for an object that's callable as a PortAudioCpp callback
  /// object (ie that implements the paCallbackFun method).
  /////
  class	CallbackInterface
  {
  public:
    virtual	~CallbackInterface() {}

    virtual	int	paCallbackFun(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, const PastreamCallbackTimeinfo *timeInfo, PaStreamCallbackFlags statusFlag) = 0;
  };

	namespace impl
	{
		extern "C"
		{
		  int	callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, unsigned long numFrames, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData);
		}
	}
}

#endif
